<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- $Id$  --><html xmlns="http://www.w3.org/1999/xhtml"><head>
    <title>Building and Installing CIAO </title>
    <LINK rev="made" href="mailto:schmidt@cs.wustl.edu"></head>
  <body text="#000000" vLink="#ff0f0f" link="#000fff" bgColor="#ffffff">
    <hr>
    <h3>Building and Installing CIAO
    </h3>
    <p>The first thing you should do to install CIAO is to set the environment 
      variable <code>CIAO_ROOT</code> to be <code>$TAO_ROOT/CIAO</code>. Please refer 
      to the <A href="../../ACE-INSTALL.html">ACE installation notes</A> and <A href="../TAO-INSTALL.html">
        TAO installation notes</A> for instructions on setting <code>$ACE_ROOT</code> 
      and <code>$TAO_ROOT</code>, respectively. They are needed since CIAO sits on 
      top of ACE+TAO. Compiling ACE+TAO successfully is the <strong>first</strong> requirement 
      for compiling CIAO.
    </p>
    <p>CIAO is divided into several parts, so different installation/building rules 
      apply to different parts of CIAO.<br>
      <br>
    </p>
    <ol>
      <li>
        CIAO core/examples: This part of CIAO include following directories: <code>$CIAO_ROOT/ciao</code>,
        <code>$CIAO_ROOT/examples</code>.
      <li>
        CIDL Compiler: This part of CIAO include <code>$CIAO_ROOT/CCF</code> and <code>$CIAO_ROOT/CIDLC</code>.
      <li>
        CIAO Deployment and Configuration Framework: This part of CIAO includes all the 
        directories in <code>$CIAO_ROOT/DAnCE</code>. DAnCE is an implementation of the 
        new <a href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-02">Deployment and 
          Configuration</a> specification. We refer, henceforth, to all pieces as CIAO 
        in general. The above two pieces will be referred specifically by their names 
        as CIDLC and DAnCE though they are part of CIAO.
      </li>
    </ol>
    <hr>
    <h3>Supported Platforms for CIAO
    </h3>
    <p>CIAO should be usable on all platforms that TAO runs on. Please see <A href="../TAO-INSTALL.html">
        TAO's installation</A> pages for details
    </p>
    <h3>Supported Platforms for CIDLC
    </h3>
    <p>CIDLC is supported only on a small subset of platforms. Please refer to <A href="CCF/Documentation/Build.html">
        this</A> for details on how to build CIDLC.
    </p>
    <b>For Building CIAO CIDLC Compiler</b>
    <table width="100%" border="1">
      <tr>
        <td><b>Fully supported, i.e., continually tested and used daily</b>
        </td>
        <td>Windows 2000/XP (VC 7.1), Linux(GCC 3.2 or higher)
        </td>
      </tr>
      <tr>
        <td><b>Binaries <a href="http://www.dre.vanderbilt.edu/cidlc/binary">available</a> intermittently, 
            no automatic builds or tests</b>
        </td>
        <td>MacOS, Solaris
        </td>
      </tr>
    </table>
    <p>If you have <A href="../../docs/ACE-porting.html">porting questions</A> or 
      have a problem compiling CIAO with TAO and ACE on the platforms shown above 
      please send email to either <A href="news:comp.soft-sys.ace">ACE Newsgroup</A> or 
      the <A href="mailto:ciao-users@cs.wustl.edu">CIAO mailing list</A> and we'll 
      try to help you fix the problems. You can also submit bug reports and 
      enhancement requests in our <A href="../../docs/usage-bugzilla.html">bug tracking 
        system</A>.
    </p>
    <p>CIAO can be obtained <a href="http://www.dre.vanderbilt.edu/Download.html">electronically</a>
      via the WWW and ftp. <a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a> is 
      bundled with the ACE and TAO release. You'll always need the most recent 
      version of ACE and TAO because CIAO tracks changes to ACE and TAO very closely.
    </p>
    <hr>
    <h3>Install CIDL Compiler
    </h3>
    <p>We suggest you download the prebuilt binary <code>cidlc(exe)</code> from <strong>
        <a href="http://www.dre.vanderbilt.edu/cidlc/">here</a></strong> or, if you 
      are using Windows or Linux, you can build it by yourself.
    </p>
    <p><A href="../../MPC/README">MPC</A> is used to build the CIDL compiler on <strong>
        Linux</strong>. The procedure is outlined below.
    </p>
    <ul>
      <li>
        Open up <code>$ACE_ROOT/bin/MakeProjectCreator/config/default.features</code>
      and set <code>cidl=1</code> and <code>boost=1</code>, each on its own line.
      <li>
        Make sure you set cidl=1, boost=1, and exceptions=1 in <code>$ACE_ROOT/include/makeinclude/platfrom_macros.GNU</code>.
      <li>
        Install <code>boost_filesystem</code>, <code>boost_regex</code> and <code>Utility 
          Library</code>. For how to do that please see <A href="./CCF/Documentation/Build.html">
          Build.html</A>.
      <li>
        In <code>$CIAO_ROOT/CIDLC</code> run <code>$ACE_ROOT/bin/mwc.pl CIDLC.mwc -type gnuace</code>
      <li>
        In <code>$CIAO_ROOT/CIDLC</code> run <code>make</code>.<br>
        Note: The linking time is a bit long (more than 5 Minutes with an Intel XEON 
        1.90GHZ CPU, please be patient).
      </li>
    </ul>
    <p><A href="../../MPC/README">MPC</A> is used to build the CIDL compiler on <strong>
        Windows</strong>. The procedure is outlined below.
    </p>
    <ul>
      <li>
        If you have not created it already, create the file <code>%ACE_ROOT%/bin/MakeProjectCreator/config/default.features</code>
        and add <code>cidl=1</code> and <code>boost=1</code> to it, each on its own 
        line.
      <li>
        Install the <a href="http://www.boost.org">Boost</a>
      libraries on your machine. For Windows, you can download either the 
      Windows-specific .exe file or the platform-independent .zip file. Use version 
      1.32.0 or later. The accompanying documentation on how to build and install 
      Boost is pretty straightforward.
      <li>
        Set the following environment variables:
        <ul>
          <li>
            <code>ACE_ROOT</code>
          - [path&nbsp;ending with&nbsp;ACE_wrappers directory] (this should already be 
          set if you're using CIAO)
          <li>
            <code>BOOST_CFG</code> - <code>_vc7_mdsd</code>
          <li>
            <code>BOOST_ROOT</code>
          - [path ending with Boost directory]
          <li>
            <code>BOOST_VERSION</code> - [name of the directory under <code>%BOOST_ROOT%\include</code>, 
            for ex. <code>boost-1_32</code>, for Boost version 1.32.0]
        </ul>
      <li>
        In <code>%CIAO_ROOT%\CIDLC</code> run <code>%ACE_ROOT%\bin\mwc.pl -type vc71 
          CIDLC.mwc</code>
      <li>
        Open <code>CIDLC.sln</code> and build as usual. Within the solution, the CIDLC 
        project is the top-level one, which depends on all the other projects, and 
        produces <code>cidlc.exe</code> in <code>%CIAO_ROOT%\bin</code>.
      </li>
    </ul>
    <hr>
    <h3>Obtaining and Installing Xerces-C
    </h3>
    <p>The Xerces-C XML parsing library is a necessary component to build parts of 
      DAnCE that need to process XML based descriptor files, which include the <b>Plan 
        Launcher</b> and the <b>Repository Manager</b>. Currently, the only Xerces-C 
      version supported by the DOC group is version 2.6 or later.
      Earlier versions of the Xerces-C library may work.
    </p>
    <h4>Building Xerces-C
    </h4>
    <p>You may check <a href="http://www.dre.vanderbilt.edu/~wotte/xerces/">here</a> to 
      see if there is a prebuilt binary available for your platform. Otherwise, you 
      will have to obtain the source from the <a href="http://xml.apache.org/xerces-c/download.cgi">
        Xerces-C webpage</a> and build it. Building Xerces-C is fairly 
      straightfoward. Please see the documentation available <a href="http://xml.apache.org/xerces-c/build.html">
        here</a> for instructions particular to your platform.
    </p>
    <ul>
      <li>
        <strong>NOTE</strong>: Some of the provided projects with Xerces-C attach 
      inconsistant library decorators onto the end of the Xerces-C libraries. The MPC 
      build tool will expect these libraries to be named xerces-c for non debug 
      versions, and xerces-cd for debug versions.
    </ul>
    <h4>Xerces-C Environment Settings
    </h4>
    <p>If the Xerces includes and libraries are in your system include and library 
      paths, respectively, then you need not set up any environment and may proceed 
      to the next step. If not, you will need to set an environment variable named 
      XERCESCROOT to a path such that $XERCESCROOT/include points to the includes and 
      $XERCESCROOT/lib points to the libraries. Also make sure that $XERCESCROOT/lib 
      is in the appropriate environment variable that your platform uses to search 
      for dynamically linked libraries.
    </p>
    <hr>
    <h3>Install CIAO core/tools/examples
    </h3>
    <p>Most of the GNUmakefiles/project files/solution files required to build CIAO 
      are available in the release. If you don't like the configurations used, please 
      feel free to regenerate them using MPC. Please see <A href="../../MPC/README">this</A>
      for more details.
    </p>
    <p>To build CIAO core/tools/examples:
    </p>
    <ol>
      <li>
      Make sure ACE and TAO are built.
      <li>
      Make sure you have the Xerces-C libraries installed/built
      <li>
        Make sure all ACE/TAO/etc. generated libs are in <code>$ACE_ROOT/lib</code>. To 
        build CIAO you will need:
        <ul>
          <li>
            <code>ACE</code>
          <li>
            <code>TAO</code>
          <li>
            <code>TAO_IDL</code>
          <li>
            <code>IFR_Client</code>
          <li>
            <code>IORTable</code>
          <li>
            <code>Valuetype</code>
          <li>
            <code>Security</code>
          <li>
            <code>ACEXML</code>
          </li>
        </ul>
      <li>
        Make sure you have cidlc or cidlc.exe in <code>$CIAO_ROOT\bin</code>
      with the right permission setting (executable).
      <li>
        Generate the Makefile/Solution/Project files and build
        <p>For the supported build tools please see <a href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">
            MPC manual</a>.
        </p>
        <p>You have to execute the MPC command in the following directories if you only 
          want to build the examples and have a peek at CIAO:
        </p>
        <ul>
          <li>
            <code>$CIAO_ROOT/DAnCE/</code>
          </li>
        </ul>
        <p>On <strong>Linux</strong>: do <code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> at the 
          locations specified above then <code>make</code>.
        </p>
        <p>On <strong>Windows/VC71</strong>: do <code>%ACE_ROOT%/bin/mwc.pl -type vc71</code>
          at the locations specified above then Open the solution file and build.
        </p>
        <p><strong>Note:</strong> You can run <code>mwc.pl</code> at <code>$CIAO_ROOT</code>
          as long as you don't intend to build CIDL compiler with MPC. If this is the 
          case(default), you can run the mwc.pl command with proper augment once then you 
          can do <code>make</code> at <code>$CIAO_ROOT</code> (Linux) or open the 
          workspace/solution file at <code>$CIAO_ROOT</code> (Windows) to build.
        </p>
      </li>
    </ol>
    <strong>Building CIAO quickly</strong> : You can build CIAO quickly by doing 
    the following:
    <ul class="noindent">
      <li>
      Remove all the GNUmakefiles or project files that are shipped with the release.
      <li>
        Open up <code>$CIAO_ROOT/CIAO_TAO.mwc</code>
      .
      <li>
        Run <code>$ACE_ROOT/bin/mwc.pl CIAO_TAO.mwc -type gnuace</code> from <code>$CIAO_ROOT</code>
      .
      <li>
      Type 'make'
      <li style="LIST-STYLE-TYPE: none">
        This will build all the required ACE+TAO libraries including CIAO libraries and 
        tools.
      </li>
    </ul>
    <hr>
    <p>Back to the <a href="http://www.cs.wustl.edu/~schmidt/CIAO.html">CIAO</a> home 
      page. <!--#include virtual="/~schmidt/cgi-sig.html" --></p>
  </body>
</html>
